﻿using BonjourQuotation.UI.Models.BaseModel;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Web;
using System.Web.WebPages.Html;

namespace BonjourQuotation.UI.Models.PartialModel
{
    public class OperationMiscGridViewModel : UserAllPermissionsViewModel
    {
        public double MiscLeftScrollPossition { get; set; }
        public double MiscTopScrollPossition { get; set; }
        public bool IsMiscCanPrev { get; set; }
        public bool IsMiscCanNext { get; set; }
        public string MiscCount { get; set; }
        public int MiscCountCheck { get; set; }
        public List<OperationMiscGridRowViewModel> Rows { get; set; }
        public List<OperationMiscGridSaveRowViewModel> SaveRows { get; set; }
        public List<OperationMiscVendorInfoViewModel> VendorInfo { get; set; }
        public int MiscPageNumber { get; set; }
        // Group Code filter
        public List<CheckBoxControlViewModel> MiscFilterGroupCode { get; set; }
        public List<CheckBoxControlViewModel> MiscFilterSelGroupCode { get; set; }
        public List<string> SelectedMiscFilterGroupCode { set; get; }
        // Group Name filter
        public List<CheckBoxControlViewModel> MiscFilterGroupName { get; set; }
        public List<CheckBoxControlViewModel> MiscFilterSelGroupName { get; set; }
        public List<string> SelectedMiscFilterGroupName { set; get; }
        // Customer filter
        public List<CheckBoxControlViewModel> MiscFilterCustomerCode { get; set; }
        public List<CheckBoxControlViewModel> MiscFilterSelCustomerCode { get; set; }
        public List<string> SelectedMiscFilterCustomerCode { set; get; }
        // Status filter
        public List<CheckBoxControlViewModel> MiscFilterStatus { get; set; }
        public List<CheckBoxControlViewModel> MiscFilterSelStatus { get; set; }
        public List<string> SelectedMiscFilterStatus { set; get; }
        // Vendor Name filter
        public List<CheckBoxControlViewModel> MiscFilterVendorName { get; set; }
        public List<CheckBoxControlViewModel> MiscFilterSelVendorName { get; set; }
        public List<string> SelectedMiscFilterVendorName { set; get; }
        // Vendor City filter
        public List<CheckBoxControlViewModel> MiscFilterVendorCity { get; set; }
        public List<CheckBoxControlViewModel> MiscFilterSelVendorCity { get; set; }
        public List<string> SelectedMiscFilterVendorCity { set; get; }
        // Filter Remove
        public bool IsRemoveMiscFilterDivShow { set; get; }
        public bool IsRemoveMiscCustomerCodeFilter { set; get; }
        public bool IsRemoveMiscGroupCodeFilter { set; get; }
        public bool IsRemoveMiscGroupNameFilter { set; get; }
        public bool IsRemoveMiscVendorNameFilter { set; get; }
        public bool IsRemoveMiscVendorCityFilter { set; get; }
        public bool IsRemoveMiscStatusFilter { set; get; }
        // Hide Show
        public bool ViewMiscGroupCode { get; set; }
        public bool ViewMiscGroupName { get; set; }
        public bool ViewMiscConfHtml { get; set; }
        public bool ViewMiscCustomer { get; set; }
        public bool ViewMiscPlane { get; set; }
        public bool ViewMiscIsComp { get; set; }
        public bool ViewMiscEmployee { get; set; }
        public bool ViewMiscServiceDetail { set; get; }
        public bool ViewMiscPax { get; set; }
        public bool ViewMiscEstNumberofPerson { set; get; }
        public bool ViewMiscSupplier { get; set; }
        public bool ViewMiscStatus { get; set; }
        public bool ViewMiscCurrency { get; set; }
        public bool ViewMiscTotalAmountPaid { get; set; }
        public bool ViewMiscTotalCost { get; set; }
        public bool ViewMiscOutstandingAmt { get; set; }
        public bool ViewMiscFirstPayment { set; get; }
        public bool ViewMiscSelectedFirstPaymentMethod { set; get; }
        public bool ViewMiscDateFirstPayment { set; get; }
        public bool ViewMiscSecondPayment { set; get; }
        public bool ViewMiscSelectedSecondPaymentMethod { set; get; }
        public bool ViewMiscDateSecondPayment { set; get; }
        public bool ViewMiscThirdPayment { set; get; }
        public bool ViewMiscSelectedThirdPaymentMethod { set; get; }
        public bool ViewMiscDateThirdPayment { set; get; }
        public bool ViewMiscQuotaPrice { get; set; }
        public bool ViewMiscQuotaPerGroupPrice { get; set; }
        public bool ViewMiscQuotaSupplier { get; set; }
        public bool ViewMiscDate { get; set; }
        public bool ViewMiscTime { get; set; }
        public bool ViewMiscUnitPrice { get; set; }
        public bool ViewMiscUnitPricePG { get; set; }
        public bool ViewMiscDiff { get; set; }
        public bool ViewMiscPGDiff { get; set; }
        public bool ViewMiscContact { get; set; }
        public bool ViewMiscPhone { get; set; }
        public bool ViewMiscEmail { get; set; }
        public bool ViewMiscAddress { get; set; }
        public bool ViewMiscCity { get; set; }
        public bool ViewMiscNotes { get; set; }

        // for filtering, update, hide show, 
        public bool IsMiscFilter { set; get; }
        public bool IsMiscView { set; get; }
        public bool IsMiscUpdate { set; get; }
        public bool IsMiscSearch { set; get; }
        // grid drop down values
        public List<SelectListItem> Details { get; set; }
        public List<SelectListItem> Employee { get; set; }
        public List<SelectListItem> VendorStatus { get; set; }
        public List<SelectListItem> PaymentMethod { get; set; }
        // Misc Search
        [DisplayName("Start Date From:")]
        public string MiscSearchStartFromDate { get; set; }
        [DisplayName("Start Date To:")]
        public string MiscSearchStartToDate { get; set; }
        [DisplayName("Customer:")]
        public string MiscSearchCustomer { get; set; }
        [DisplayName("Group Name:")]
        public string MiscSearchGroupName { get; set; }
        [DisplayName("Group Code:")]
        public string MiscSearchGroupCode { get; set; }
        [DisplayName("Supplier:")]
        public string MiscSearchVendorName { get; set; }
        [DisplayName("Employee:")]
        public string MiscSearchEmployee { get; set; }
        public int MiscSearchEmployeeID { get; set; }
        // Misc Totals
        [DisplayName("Total Paid:")]
        public string MiscTotalPaidSum { get; set; }
        [DisplayName("Total P/P Diff:")]
        public string MiscDifferenceSum { get; set; }
        [DisplayName("Total P/G Diff:")]
        public string MiscPGDifferenceSum { get; set; }
        [DisplayName("Total P/P Comp:")]
        public string MiscCompSum { get; set; }
        [DisplayName("Total P/G Comp:")]
        public string MiscPGCompSum { get; set; }
        [DisplayName("Total Out Amt:")]
        public string MiscOutstandingAmtSum { get; set; }
        [DisplayName("Total Cost:")]
        public string MiscTotalCostAmtSum { get; set; }
        [DisplayName("Grp Profit:")]
        public string MiscGroupProfit { get; set; }
        [DisplayName("Total Invoice:")]
        public string MiscTotInvoice { get; set; }
        [DisplayName("Profit %:")]
        public string MiscProfitPers { get; set; }
        public decimal MiscTotCost { get; set; }
        public decimal MiscTotCostCad { get; set; }
    }
    [Serializable]
    public class OperationMiscGridRowViewModel
    {
        public string MiscGroupID { get; set; }
        public int MiscVendorID { get; set; }
        public string MiscSelectedVendorStatus { get; set; }
        public string MiscNewVendorID { get; set; }
        public string MiscGroupCode { get; set; }
        public string MiscConfHtml { get; set; }
        public string MiscGroupContractHtml { get; set; }
        public string MiscGroupName { get; set; }
        public string MiscCustomer { get; set; }
        public string MiscSelectedEmployee { get; set; }
        public string MiscSelectedDetail { get; set; }
        public string MiscPax { get; set; }
        public string MiscEstNoOfPerson { get; set; }
        public bool MiscPlane { get; set; }
        public bool MiscIsComp { get; set; }
        public string MiscSupplier { get; set; }
        public string MiscDate { get; set; }
        public string MiscTime { get; set; }
        public string MiscUnitPrice { get; set; }
        public string MiscUnitPricePG { get; set; }
        public string MiscDiff { get; set; }
        public string MiscPGDiff { get; set; }
        public string MiscContact { get; set; }
        public string MiscPhone { get; set; }
        public string MiscEmail { get; set; }
        public string MiscAddress { get; set; }
        public string MiscCity { get; set; }
        public string MiscNotes { get; set; }
        public string MiscQuotaSupplier { get; set; }
        public string MiscQuotaPrice { get; set; }
        public string MiscQuotaPerGroupPrice { get; set; }
        public string MiscQuotaCurr { get; set; }
        public string MiscFirstPayment { get; set; }
        public string MiscSelectedFirstPaymentMethod { get; set; }
        public string MiscDateFirstPayment { get; set; }
        public string MiscSecondPayment { get; set; }
        public string MiscSelectedSecondPaymentMethod { get; set; }
        public string MiscDateSecondPayment { get; set; }
        public string MiscThirdPayment { get; set; }
        public string MiscSelectedThirdPaymentMethod { get; set; }
        public string MiscDateThirdPayment { get; set; }
        public string MiscPayMeth1FormHtml { get; set; }
        public string MiscPayMeth2FormHtml { get; set; }
        public string MiscPayMeth3FormHtml { get; set; }
        public string MiscTotalAmountPaid { get; set; }
        public string MiscTotalCost { get; set; }
        public string MiscOutstandingAmt { get; set; }

    }
    public class OperationMiscGridSaveRowViewModel
    {
        public int GroupID { get; set; }
        public int VendorID { get; set; }
        public int? Pax { get; set; }
        public int SelectedEmployeeID { get; set; }
        public int SelectedDetailID { get; set; }
        public string QuotaCurr { get; set; }
        public string NewVendorID { get; set; }
        public string StartDate { get; set; }
        public string NewStartDate { get; set; }
        public string Time { get; set; }
        public string UnitPrice { get; set; }
        public string UnitPricePG { get; set; }
        public int MiscSelectedVendorStatus { get; set; }
        public bool Plane { get; set; }
        public bool IsComp { get; set; }
        public string Notes { get; set; }
        public string FirstPayment { get; set; }
        public string SelectedFirstPaymentMethod { get; set; }
        public string DateFirstPayment { get; set; }
        public string SecondPayment { get; set; }
        public string SelectedSecondPaymentMethod { get; set; }
        public string DateSecondPayment { get; set; }
        public string ThirdPayment { get; set; }
        public string SelectedThirdPaymentMethod { get; set; }
        public string DateThirdPayment { get; set; }
    }
    public class OperationMiscVendorInfoViewModel
    {
        public int VendorID { get; set; }
        public string VendorName { get; set; }
        public string VendorCity { get; set; }
        public string VendorAddress { get; set; }
        public string VendorPhone { get; set; }
        public string VendorType { get; set; }
        public string VendorEmail { get; set; }
        public string VendorContactPerson { get; set; }
        public bool VendorIsFind { get; set; }
    }
   
}